<ui:composition template="/app/template/layout.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
	<ui:define name="content">
		<f:metadata>
			<f:viewParam id="fromPacchettoId" name="fromPacchettoId"
				value="#{pacchettoBean.idPacchettoString}" />
			<f:viewAction action="#{pacchettoBean.initNew}" />
		</f:metadata>
		<p:panel header="Nuovo Pacchetto" rendered="#{autenticazioneBean.isCurrentUserImpiegato() or pacchettoBean.isPersonalizzando}">
			<p:confirmDialog global="true">
				<p:commandButton value="Sì" type="button"
					styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
				<p:commandButton value="No" type="button"
					styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
			</p:confirmDialog>
			<p:messages id="messaggesNuovoPacchetto" autoUpdate="true"
				sticky="true" />
			<h:form id="addPacchettoForm">
				<h:panelGrid columns="2" id="metadataGrid">
					<h:outputLabel for="nome">Nome:</h:outputLabel>
					<p:inputText id="nome" value="#{pacchettoBean.pacchettoDTO.nome}" />

					<h:outputLabel for="descrizione">Descrizione:</h:outputLabel>
					<p:inputTextarea id="descrizione"
						value="#{pacchettoBean.pacchettoDTO.descrizione}" />
				</h:panelGrid>
				<br />
				<p:remoteCommand name="updatePrezzoTotale" update="prodottiAssociatiTable:prezzoTotaleField"/>
				<p:dataTable id="prodottiAssociatiTable" var="composizione"
					value="#{pacchettoBean.pacchettoDTO.composizione}" editable="true">

					<p:ajax event="rowEdit"
						oncomplete="updatePrezzoTotale()" />

					<f:facet name="header">Prodotti associati al pacchetto</f:facet>
					<p:column headerText="Tipologia">
						<h:outputText
							value="#{prodottiBean.getProdottoDTOFromId(composizione.idProdotto).tipologia.label}" />
					</p:column>
					<p:column headerText="Prodotto">
						<h:outputText
							value="#{prodottiBean.getProdottoDTOFromId(composizione.idProdotto).nome}"
							style="font-weight: bold" />
						<br />
						<h:outputText
							value="#{prodottiBean.getProdottoDTOFromId(composizione.idProdotto).descrizione}" style="white-space: pre-line;" />
					</p:column>
					<p:column headerText="Data inizio">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{composizione.dataInizio}">
									<f:convertDateTime pattern="dd/MM/yyyy" timeZone="CET" />
								</h:outputText>
							</f:facet>
							<f:facet name="input">
								<h:inputText value="#{composizione.dataInizio}">
									<f:convertDateTime pattern="dd/MM/yyyy" timeZone="CET" />
								</h:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>
					<p:column headerText="Data fine">
						<p:cellEditor>
							<f:facet name="output">
								<h:outputText value="#{composizione.dataFine}">
									<f:convertDateTime pattern="dd/MM/yyyy" timeZone="CET" />
								</h:outputText>
							</f:facet>
							<f:facet name="input">
								<h:inputText value="#{composizione.dataFine}">
									<f:convertDateTime pattern="dd/MM/yyyy" timeZone="CET" />
								</h:inputText>
							</f:facet>
						</p:cellEditor>
					</p:column>
					<p:column headerText="Prezzo unitario" style="text-align:right">
						<h:outputText
							value="#{prodottiBean.getProdottoDTOFromId(composizione.idProdotto).prezzoUnitario/100}">
							<f:convertNumber currencySymbol="€" type="currency" />
						</h:outputText>
					</p:column>
					<p:column headerText="Prezzo totale" style="text-align:right">
						<h:outputText
							value="#{prodottiBean.calcolaPrezzoTotale(composizione.idProdotto, composizione.getDurationInDays())/100}">
							<f:convertNumber currencySymbol="€" type="currency" />
						</h:outputText>
					</p:column>
					<p:column headerText="Modifica">
						<p:rowEditor />
					</p:column>
					<p:column headerText="Rimuovi">
						<p:commandButton icon="ui-icon-trash"
							update="prodottiAssociatiTable"
							actionListener="#{pacchettoBean.rimuoviComposizione(composizione)}">
							<p:confirm header="Conferma"
								message="Sei sicuro di voler rimuovere questo prodotto dal pacchetto?"
								icon="ui-icon-alert" />
						</p:commandButton>
					</p:column>
					<p:columnGroup type="footer">
						<p:row>
							<p:column colspan="5">
								<f:facet name="footer">
									<p:commandButton value="Aggiungi prodotto"
							oncomplete="PF('prodottiDialog').show()"
							update="prodottiAssociatiTable" />
								</f:facet>
							</p:column>
							<p:column style="text-align:right">
								<f:facet name="footer">
									<h:outputText id="prezzoTotaleField" value="#{pacchettoBean.calcolaPrezzo()/100}">
										<f:convertNumber currencySymbol="€" type="currency" />
									</h:outputText>
								</f:facet>
							</p:column>
							<p:column colspan="2" />
						</p:row>
					</p:columnGroup>
				</p:dataTable>
				<br />
				<br />
				<p:commandButton value="Crea pacchetto" update="addPacchettoForm"
					action="#{pacchettoBean.nuovoPacchetto}"
					rendered="#{pacchettoBean.isPersonalizzando==false}">
				</p:commandButton>
				<p:commandButton value="Salva pacchetto personalizzato" update="addPacchettoForm"
					action="#{pacchettoBean.personalizzaPacchetto}"
					rendered="#{pacchettoBean.isPersonalizzando}">
				</p:commandButton>
			</h:form>
			<p:dialog id="dialog" header="Aggiungi Prodotto"
				widgetVar="prodottiDialog" resizable="false">
				<h:form>
					<p:dataTable id="prodottiDialogTable" var="prodotto"
						value="#{prodottiBean.prodottiDTOList}">
						<p:column headerText="Tipologia" sortBy="tipologia">
							<h:outputText value="#{prodotto.tipologia.label}" />
						</p:column>
						<p:column headerText="Nome" sortBy="nome">
							<h:outputText value="#{prodotto.nome}" />
						</p:column>
						<p:column headerText="Descrizione" sortBy="descrizione">
							<h:outputText value="#{prodotto.descrizione}" style="white-space: pre-line;" />
						</p:column>
						<p:column headerText="Prezzo unitario" sortBy="prezzoUnitario">
							<h:outputText value="#{prodotto.prezzoUnitario/100}">
								<f:convertNumber currencySymbol="€" type="currency" />
							</h:outputText>
						</p:column>
						<p:column headerText="Inserisci">
							<p:commandButton icon="ui-icon-add"
								actionListener="#{pacchettoBean.addProdottoToPacchetto(prodotto)}"
								update=":addPacchettoForm:prodottiAssociatiTable"
								oncomplete="PF('prodottiDialog').hide()" />
						</p:column>
					</p:dataTable>
				</h:form>
			</p:dialog>
		</p:panel>
	</ui:define>
</ui:composition>